import { ValidationResult, LLMProvider } from '../../types/index';

/**
 * 验证服务接口
 */
export interface IValidationService {
  /**
   * 验证API Key的有效性
   * @param provider LLM供应商
   * @param apiKey API密钥
   * @param baseURL 基础URL（可选）
   */
  validateApiKey(
    provider: LLMProvider,
    apiKey: string,
    baseURL?: string
  ): Promise<ValidationResult>;

  /**
   * 验证完整的LLM配置
   * @param provider LLM供应商
   * @param apiKey API密钥
   * @param modelName 模型名称
   * @param baseURL 基础URL
   */
  validateConfig(
    provider: LLMProvider,
    apiKey: string,
    modelName: string,
    baseURL: string
  ): Promise<ValidationResult>;

  /**
   * 获取上次验证结果的缓存
   * @param provider LLM供应商
   * @param apiKey API密钥（用于识别）
   */
  getCachedValidation(
    provider: LLMProvider,
    apiKey: string
  ): Promise<ValidationResult | null>;
}